﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Silvermoon.Controls
{
    /// <summary>
    /// Specifies methods a controls must implement to receive virtual scroll information.
    /// </summary>
    public interface IScrollEventBehavior
    {
        /// <summary>
        /// Same as OnMouseMove but occurs even if the mouse is actually not pressed due to simulated accelleration.
        /// </summary>
        void OnScroll(ScrollEventArgs e);

        /// <summary>
        /// Occurs befor sending intervals of <see cref="ScrollEventArgs"/>.
        /// </summary>
        /// <example>A listview could now show it's scrollbar.</example>
        void OnBeginScrollData(BeginScrollEventArgs e);

        /// <summary>
        /// Occurs after sending the last <see cref="ScrollEventArgs"/>.
        /// </summary>
        /// <example>A listview could now hide it's scrollbar.</example>
        void OnEndScrollData(EndScrollEventArgs e);

    }
}
